
setwd() # altera diretrio

analise.predacao = function(file1,file2) #criando a funo 
{
options(digits=4) # limita nmero de casas decimais nos outputs
presas = read.csv(file = file1, sep=",", head=T) # l primeiro arquivo de dados de entrada
predadores = read.csv(file = file2, sep=",", head=T) # l segundo arquivo de dados de entrada

#########################################################
##### GERANDO ANLISE DESCRITIVA PARA PRESAS E PREDADORES
##### SOMA, MDIA, DESVIO-PADRAO, MXIMO, MEDIANA, MNIMO
#########################################################  

##########################################
# Presas
##########################################
presas.2=presas[c(-1,-2)][presas$predacao==1,] #selecionando apenas colunas com os perodos de tempo onde predacao=1.

soma.presas=apply(presas.2, 2, sum) # soma para cada tempo
media.presas=apply(presas.2, 2, mean) # mdia para cada tempo
std.presas=sqrt(apply(presas.2, 2, var)) # desvio-padro para cada tempo
min.presas=apply(presas.2, 2, min) # mnimo para cada tempo
mediana.presas=apply(presas.2, 2, median) # mediana para cada tempo
max.presas=apply(presas.2, 2, max) # mximo para cada tempo
analise.presas=t(data.frame(soma.presas,media.presas,std.presas,min.presas,mediana.presas,max.presas)) # junta resultados de presas em um data.frame
rownames(analise.presas)=c("Soma","Mdia","Desvio-Padro","Mnimo","Mediana","Mximo")
print("Anlise Descritiva Presas") # exibe o "ttulo" da tabela
print(analise.presas) # exibe output no console
View(analise.presas) # exibe output em uma janela

##########################################
# Predadores
##########################################
predadores.2=predadores[c(-1)] #selecionando apenas colunas com os perodos de tempo

soma.predadores=apply(predadores.2, 2, sum) # soma para cada tempo
media.predadores=apply(predadores.2, 2, mean) # mdia para cada tempo
std.predadores=sqrt(apply(predadores.2, 2, var)) # desvio-padro para cada tempo
min.predadores=apply(predadores.2, 2, min) # mnimo para cada tempo
mediana.predadores=apply(predadores.2, 2, median) # mediana para cada tempo
max.predadores=apply(predadores.2, 2, max) # mximo para cada tempo
analise.pred=t(data.frame(soma.predadores,media.predadores,std.predadores,min.predadores,mediana.predadores,max.predadores)) # junta resultados de predadores em um data.frame
rownames(analise.pred)=c("Soma","Mdia","Desvio-Padro","Mnimo","Mediana","Mximo")
print("Anlise Descritiva predadores") # exibe o "ttulo" da tabela
print(analise.pred) # exibe output no console
View(analise.pred) # exibe output em uma janela

##########################################
### Grfico 1 evidenciando a soma de predadores e presas observadas em cada perodo de tempo
##########################################

### argumentos para o "plot"
tempo=names(soma.presas) # nomes dos intervalos de tempo
ymin=min(soma.presas,soma.predadores) # valor mnimo do eixo "y" do grfico
ymax=max(soma.presas,soma.predadores) # valor mximo do eixo "y" do grfico
x.axis=1:length(soma.presas) # intervalos no eixo "x"

#Grafico1
png(filename="presasvspredadores.png") #Salva grfico no diretrio atual
plot(x.axis,soma.presas,
     xlab="Tempo", ylab="Quantidade de Individuos",ylim = c(ymin,ymax),
     xaxt="n", type='o', col="green", lwd=1.5) # plota grfico
axis(1,at=1:length(tempo), labels=tempo) # nomes dos intervalos no eixo "x"
points(1:length(soma.presas),soma.predadores,pch=2, type='o', col="red", lwd=1.5) #adiciona linha de predadores no grfico
legend("topleft", c("Presas","Predadores"),col=c("green","red"), pch=c(1,2),cex = 0.8) # adiciona legenda
dev.off() # retira exibio do grfico 


#Exibe grfico no R
plot(x.axis,soma.presas,
     xlab="Tempo", ylab="Quantidade de Individuos",ylim = c(ymin,ymax),
     xaxt="n", type='o', col="green", lwd=1.5) # plota grfico
axis(1,at=1:length(tempo), labels=tempo) # nomes dos intervalos no eixo "x"
points(1:length(soma.presas),soma.predadores,pch=2, type='o', col="red", lwd=1.5) #adiciona linha de predadores no grfico
legend("topleft", c("Presas","Predadores"),col=c("green","red"), pch=c(1,2),cex = 0.8) # adiciona legenda

# Criando tabela com consumo de presas
presas=presas[with(presas,order(-predacao,generos)),] #ordena tabela em ordem decrescente de "predacao" e depois em ordem alfabtica de "generos"
presas1=presas[c(-1,-2)][presas$predacao==1,] # seleciona tempos com "predacao"=1
presas0=presas[c(-1,-2)][presas$predacao==0,] # seleciona tempos com "predacao"=0
diferenca=presas0-presas1 # faz a diferena das quantidades de presas em cada tempo obtendo o consumo das presas
generos=presas[presas$predacao==1,1] # seleciona apenas generos
consumo.presas=data.frame(generos,diferenca$t0,diferenca$t1,diferenca$t2,diferenca$t3,diferenca$t4) # cria data.frame de consumo
colnames(consumo.presas)=names(presas[c(-2)]) # nomeia as colunas

soma.consumo.presas=data.frame(consumo.presas,rowSums(consumo.presas[c(-1)])) # cria coluna de soma
colnames(soma.consumo.presas)=c(names(consumo.presas),"total") # nomeia colunas
print("Consumo de Presas") # exibe "ttulo" da tabela de consumo
print(soma.consumo.presas) # exibe tabela de consumo
View(soma.consumo.presas) # exibe tabela de em uma janela

#write.table(consumo.presas,"soma.consumo.presas.csv", sep=",")
#print(soma.consumo.presas,row.names = FALSE)

#Top 10 generos mais consumidos
maiores.consumos=head(soma.consumo.presas[with(soma.consumo.presas,order(-total)),],10)
#Top 10 generos menos consumidos
menores.consumos=head(soma.consumo.presas[with(soma.consumo.presas,order(total)),],10)
ymax=max(soma.consumo.presas$total) # valor mximo eixo "y"

#Grafico 2
png(filename="maisconsumidos.png") # salva grfico dos mais consumidos
print("Presas mais consumidas") # "ttulo" grfico mais consumidos
par(las=2) # altera direo dos labels do eixo "x", posio vertical
barplot(maiores.consumos$total,names.arg=maiores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos mais consumidos
#dev.off() # retira exibio do grfico 
dev.new()
par(las=2) # altera direo dos labels do eixo "x", posio vertical
barplot(maiores.consumos$total,names.arg=maiores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos mais consumidos


#Grafico 3
png(filename="menosconsumidas.png") # salva grfico dos mais consumidos
print("Presas menos consumidas")
par(las=2) # altera direo dos labels do eixo "x", posio vertical
barplot(menores.consumos$total,names.arg=menores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos menos consumidos
#dev.off() # retira exibio do grfico 

dev.new()
par(las=2) # altera direo dos labels do eixo "x", posio vertical
barplot(menores.consumos$total,names.arg=menores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos menos consumidos


}

###################################################################
